Consejos sobre como nombrar los diferentes elementos de codigo
El nombre de una variable, funcion o clase debe de responder a estas preguntas:
Un nombre debe de revelar cual es su intención
Si un nombre necesita de un comentario para ser explicado es que su nombre está mal puesto
Tenemos que evitar posibles casos en los que se puedan confundir ciertos conceptos sin querer.
Tener cuidado cuando se ponen nombres parecidos, es importante hacer distinciones evidentes.
Ejemplo MAL
XYZControllerForEfficientHandlingOfStrings
XYZControllerForEfficientStorageOfStrings
Esas dos variables son muy largas, muy parecidas y tienen funcionalidades muy distintas, es un mal ejemplo
Ejemplo BIEN
countMembers
countSkills
Este ejemplo es mucho mejor, los dos nombres empiezan igual, pero es facil diferenciar el uno del otro y la funcionalidad que hacen debería de ser parecida solo que orientada a objetos distintos
En vez de tener una funcion geAlSk sería mejor tener una funcion getAllSkills, ya que tiene un significado y es algo que se puede pronunciar
Si usamos una variable con nombre e será dificil buscar en el código si usamos un buscador, en cambio si usamos una variable como numberOfLetters será mucho mas facil buscarla
Si queremos añadir algo no usemos en un lugar add en otro insert y asi... debemos de coger una sola palabra y ser consistentes a lo largo de todo el código
Si por ejemplo tenemos variables name y surname pueden significar una cosa, pero si tenemos addrName y addrSurname siguen siendo lo mismo pero en un contexto diferente, es importante contextualizar los nombres que usemos para dar mas información
Otra manera de contextualizar variables es haciendo que sean parta de una nueva clase, en este caso podríamos tener la clase Address y dentro los miembros name y surname
Al igual que es importante incluir un contexto que le dé significado, también es importante no intentar incluir contexto de más si no es necesario o no aporta ninguna información valiosa.
La longitud de los nombres que utilicemos debe de ser proporcional a la longitud del contexto en el que se usen, si tenemos una variable que se usa a lo largo de varias funciones y varias líneas de código el nombre de la variable tendrá que tener un tamaño considerable, ya que tiene que tener un nombre que le dé un significado explicito.
Por el contrario si vamos a usar una variable en un numero pequeño de linea podemos incluso tener variables de una sola letra, ya que al estar en un contexto pequeño sabemos exactamente a que hacen referencia y no necesitamos tener un nombre que sea muy descriptivo.
| Obtener | Añadir | Eliminar | Convertir | Obtener Backend |
|---|---|---|---|---|
|
|
|
|
|
Las clases deben de ser nombradas como Nombres o Frases de nombres por ejemplo Customer o AdressParser
Una clase NO debe de ser nombrada con un verbo
Los metodos deben de ser nombrados como verbos o Frases de verbos como por ejemplo save o deletePage
Cuando un constructor es sobrecargado es mejor usar funciones static con un nombre que describa el argumento:
En vez de:
Complex fulcrumPoint = new Complex(23.0);
Usar una funcion estatica como:
Complex fulcrumPoint = Complex.FromRealNumber(23.0);
Para asegurarnos de que se use la funcion static podemos declarar el constructor como privado
Clean Code | Naming | variables